<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Aluno
 *
 * @author alexandre
 */
class Aluno {

    private $nome;
    private $dataNascimento;
    private $cpf;
    private $identidade;
    private $matricula;
    private $cursoCod;
    private $periodo;
    private $foto;
    private $notificacaoMatricula;
    private $email;
    private $telefone;
    private $celular;
    public $hash = "";

    function __construct($cpf = null) {
        if (!is_null($cpf)) {
            $this->loadData($cpf);
        }
    }

    public function apagar() {


        return "<h2>Operação cancelada!</h2>";
    }

    public function confirmar() {       
        return true;
    }

    private function loadData($cpf) {
        if (is_null($cpf)) {
            $cpf = $this->getCpf();
        } else {
            $cpf = $this->trataCPF($cpf);
        }
    }

    public function inserirAluno() {
        try {
            require_once 'BaseDados.php';
            $db = new BaseDados("escrita");
            $objDb = $db->getObjDb();
            $stmt = $objDb->stmt_init();
            if ($stmt->prepare("INSERT INTO `dceufg_documento`.`Aluno`
                    (`cpf`,
                    `nome`,
                    `dataNascimento`,
                    `identidade`,
                    `matricula`,
                    `cursoCod`,
                    `periodo`,
                    `email`,
                    `telefone`,
                    `celular`,
                    `foto`,
                    `notificacaoMatricula`,
                    `hash`)
                    VALUES
                    (
                    ?,
                    ?,
                    ?,
                    ?,
                    ?,
                    ?,
                    ?,
                    ?,
                    ?,
                    ?,
                    ?,
                    ?,
                    ?
                    )")) {
                $stmt->bind_param('sssssiissssss', $this->cpf, $this->nome, $this->dataNascimento, $this->identidade, $this->matricula, $this->cursoCod, $this->periodo, $this->email, $this->telefone, $this->celular, $this->foto, $this->notificacaoMatricula, $this->hash);
                $stmt->execute();
                $stmt->close();
                return 1;
            } else {
                return "Falha ao preparar statement, verifique se todos os dados foram informados corretamente";
            }
        } catch (Exception $e) {
            return "Falha: , " . $e->getMessage() . ", \n";
            exit();
        }
    }

    private function trataCPF($cpf) {
        return $cpf;
    }

    public function getNome() {
        return $this->nome;
    }

    public function setNome($nome) {
        $this->nome = $nome;
    }

    public function getDataNascimento() {
        return $this->dataNascimento;
    }

    public function setDataNascimento($dataNascimento) {
        $this->dataNascimento = $dataNascimento;
    }

    public function getCpf() {
        return $this->cpf;
    }

    public function setCpf($cpf) {
        $this->cpf = $cpf;
    }

    public function getIdentidade() {
        return $this->identidade;
    }

    public function setIdentidade($identidade) {
        $this->identidade = $identidade;
    }

    public function getMatricula() {
        return $this->matricula;
    }

    public function setMatricula($matricula) {
        $this->matricula = $matricula;
    }

    public function getCursoCod() {
        return $this->cursoCod;
    }

    public function setCursoCod($cursoCod) {
        $this->cursoCod = $cursoCod;
    }

    public function getPeriodo() {
        return $this->periodo;
    }

    public function setPeriodo($periodo) {
        $this->periodo = $periodo;
    }

    public function getFoto() {
        return $this->foto;
    }

    public function setFoto($foto) {
        $this->foto = $foto;
    }

    public function getNotificacaoMatricula() {
        return $this->notificacaoMatricula;
    }

    public function setNotificacaoMatricula($notificacaoMatricula) {
        $this->notificacaoMatricula = $notificacaoMatricula;
    }

    public function getEmail() {
        return $this->email;
    }

    public function setEmail($email) {
        $this->email = $email;
    }

    public function getTelefone() {
        return $this->telefone;
    }

    public function setTelefone($telefone) {
        $this->telefone = $telefone;
    }

    public function getCelular() {
        return $this->celular;
    }

    public function setCelular($celular) {
        $this->celular = $celular;
    }

    public function enviarMensagem($assunto, $mensagem) {
        if ((isset($assunto)) && (isset($mensagem)) && (isset($this->email))) {
            if ($this->validaEmail($this->email)) {
                try {
                    $from = ("Diretorio Central dos Estudantes - UFG <contato@dceufg.org>");
                    $path = '/home/dceufg/php';
                    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
                    require_once 'Mail.php';
                    $destino = $this->email;
                    $cabecalhos['From']     = $from;
                    $cabecalhos['MIME-Version'] =  '1.0';
                    $cabecalhos['Content-type'] =  'text/html';
                    $cabecalhos['charset='] =  'UTF-8';
                    $cabecalhos['To']       =  $this->nome.' <'.$this->email.'>';
                    $cabecalhos['Subject']  = $assunto;
                    
                    $smtpP['host']     = 'ssl://mail.dceufg.org';
                    $smtpP['port']     = '465';
                    $smtpP['auth']     = 'PLAIN';
                    $smtpP['username'] = 'contato@dceufg.org';
                    $smtpP['password'] = '1xs5zkfd62';
                    
                    $smtp = Mail::factory('smtp',$smtpP);
                    
                    $mail = $smtp->send($destino, $cabecalhos, $mensagem);
                    
                    if (PEAR::isError($mail)) {
                        return ("<p>" . $mail->getMessage() . "</p>");
                    } else {
                        return ("<p>E-mail encaminhado!</p>");
                    }
                } catch (Exception $e) {
                    return "Falha: , " . $e->getMessage() . ", \n";
                }
            }else{
                return "E-mail inválido! Não foi possível enviar a confirmação.";
            }
        }
        return "Parâmetros inválidos! Não foi possível enviar a confirmação.";;
    }

    public function validaEmail($email) {
        $conta = "^[a-zA-Z0-9\._-]+@";
        $domino = "[a-zA-Z0-9\._-]+.";
        $extensao = "([a-zA-Z]{2,4})$";

        $pattern = $conta . $domino . $extensao;

        if (ereg($pattern, $email))
            return true;
        else
            return false;
    }

}

?>
